package day05;

import java.util.Random;
import java.util.Scanner;

/**
 * @author wangzhisen
 * @Desc TODO
 * @date 2025/4/14
 *
 *  2.
 *  分析以下需求，并用代码实现
 *  1.提示用户输入10个整数，存入到int数组中；根据以下要求实现相关功能
 *  2.提示用户输入一个数字作为数组索引，查找数组中该索引对应的元素，
 *  （需要判断输入的数字是否在0-9之间包含临界值，如果该数字不符合要求则随机生成一个符合要求的索引）
 *  3.将a中得到的索引对应的元素的左右两边元素进行互换，若对应的元素是第一个或最后一个则不做任何操作
 */
public class TestMethod02 {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        Random random = new Random();

        int[] numbers = new int[10];
        System.out.println("请输入10个整数：");
        for (int i = 0; i < 10; i++) {
            System.out.print("请输入第" + (i + 1) + "个整数: ");
            numbers[i] = scanner.nextInt();
        }

        // 提示用户输入一个数字作为数组索引
        System.out.print("请输入一个数组索引(0-9): ");
        int index = scanner.nextInt();

        // 检查索引是否有效，无效则随机生成
        if (index < 0 || index > 9) {
            System.out.println("输入的索引无效，将随机生成一个有效索引。");
            index = random.nextInt(10); // 生成0-9的随机数
            System.out.println("生成的索引是: " + index);
        }

        //  交换索引对应元素的左右两边元素
        if (index > 0 && index < 9) { // 不是第一个也不是最后一个
            // 交换左右元素
            int temp = numbers[index - 1];
            numbers[index - 1] = numbers[index + 1];
            numbers[index + 1] = temp;

            System.out.println("交换后的数组:");
            for (int num : numbers) {
                System.out.print(num + " ");
            }
            System.out.println();
        } else {
            System.out.println("索引位于数组首尾，无需交换。");
            System.out.println("当前数组:");
            for (int num : numbers) {
                System.out.print(num + " ");
            }
            System.out.println();
        }

        scanner.close();
    }
}

